package com.ruoyi.algorithm.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.algorithm.annotation.TableStructAnno;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 *
 * @TableName operator
 */
@TableName(value ="operator")
@Data
@ApiModel
@TableStructAnno("operator")
public class Operator implements Serializable {
    /**
     * 主键id
     */
    @ApiModelProperty("主键id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 算子名称
     */
    @ApiModelProperty("算子名称")
    @TableField(value = "name", condition = SqlCondition.LIKE)
    @TableStructAnno("算子名称")
    private String name;

    /**
     * 算法厂商ID
     */
    @ApiModelProperty("算法厂商ID")
    @TableField(value = "manufacturer_id")
    @TableStructAnno("算法厂商ID")
    private Long manufacturerId;

    /**
     * 接口类型ID
     */
    @ApiModelProperty("接口类型ID")
    @TableField(value = "agreement_type_id")
    @TableStructAnno("接口类型ID")
    private Long agreementTypeId;

    /**
     * 在线标志（0:下线；1：上线）
     */
    @ApiModelProperty("在线标志（0:下线；1：上线）")
    @TableField(value = "is_online")
    @TableStructAnno("在线标志（0:下线；1：上线）")
    private String isOnline;

    /**
     * 算法类型
     */
    @ApiModelProperty("算法类型")
    @TableField(value = "algorithm_type_id")
    @TableStructAnno("算法类型")
    private Long algorithmTypeId;

    /**
     * 授权有效期
     */
    @ApiModelProperty("授权有效期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:dd:ss") //前台传数据到后台
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss",timezone="GMT+8")// 后台传数据到前台
    @TableField(value = "period_of_authorization")
    @TableStructAnno("授权有效期")
    private Date periodOfAuthorization;

    /**
     * 操作系统需求
     */
    @ApiModelProperty("操作系统需求")
    @TableField(value = "os_requirements", condition = SqlCondition.LIKE)
    @TableStructAnno("操作系统需求")
    private String osRequirements;

    /**
     * gpu需求
     */
    @ApiModelProperty("gpu需求")
    @TableField(value = "gpu_requirements", condition = SqlCondition.LIKE)
    @TableStructAnno("gpu需求")
    private String gpuRequirements;

    /**
     * 内存需求
     */
    @ApiModelProperty("内存需求")
    @TableField(value = "memory_requirements", condition = SqlCondition.LIKE)
    @TableStructAnno("内存需求")
    private String memoryRequirements;

    /**
     * cpu需求
     */
    @ApiModelProperty("cpu需求")
    @TableField(value = "cpu_requirements", condition = SqlCondition.LIKE)
    @TableStructAnno("cpu需求")
    private String cpuRequirements;

    /**
     * 创建业务部门Id
     */
    @ApiModelProperty("创建业务部门Id")
    @TableField(value = "department_id")
    @TableStructAnno("创建业务部门Id")
    private Long departmentId;

    /**
     * 算子版本表id
     */
    @ApiModelProperty("算子版本表id")
    @TableField(value = "operator_version_id")
    @TableStructAnno("算子版本表id")
    private Long operatorVersionId;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss",timezone="GMT+8")// 后台传数据到前台
    @TableStructAnno("创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(value = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss",timezone="GMT+8")// 后台传数据到前台
    @TableStructAnno("更新时间")
    private Date updateTime;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @TableField(value = "create_user")
    @TableStructAnno("创建人")
    private Long createUser;

    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    @TableField(value = "update_user")
    @TableStructAnno("更新人")
    private Long updateUser;

    /**
     * 删除标志（0未删除；1已删除）
     */
    @ApiModelProperty("删除标志（0未删除；1已删除）")
    @TableField(value = "del_flag")
    @TableStructAnno("删除标志（0未删除；1已删除）")
    private String delFlag;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
